/**
 * Copyright (c) qzsoft All rights reserved.
 *
 * qzsoft.cn
 *
 * 版权所有，侵权必究！
 */

package com.qzsoft.system.modules.permission.dept.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qzsoft.system.modules.permission.dept.dto.SysDeptDTO;
import com.qzsoft.system.modules.permission.dept.dto.SysDeptTreeDto2;
import com.qzsoft.system.modules.permission.dept.excel.SysDeptExcel;
import com.qzsoft.system.repository.sys.entity.SysDeptEntity;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;
import java.util.Map;

/**
 * 部门管理
 * 
 * @author
 */
public interface SysDeptService  {
/*************** 2020-10-10 16:10:00 表名统一增加opm前缀 孙文文  MOD  START ***************/
	IPage<SysDeptEntity> list(Page page, SysDeptEntity dto);
	List<SysDeptEntity> list(String pid);
	List<SysDeptEntity> outList(String pid);
 /*************** 2020-10-10 16:10:00 表名统一增加opm前缀 孙文文  MOD  END ***************/

	List<SysDeptExcel> listAll();

	List<SysDeptEntity> listAll2();
	/**
	 * @Title: find
	 * @Description: 获取磅房管理
	 * @param id 磅房管理主键
	 * @return Result 磅房管理
	 */
	SysDeptEntity get(String id);

	SysDeptEntity getByRealId(String id);

	SysDeptEntity getDeptByCode(String code);

	SysDeptEntity saveDept(SysDeptEntity dto);

	void delete(String pkId);

	/**
	 *
	 * @param pkId1
	 * @param pkId2
	 */
	void saveDeptSort(String pkId1,String pkId2);


	String getDeptIdByPkId(String pkId);

	String getDeptPkIdById(String deptId);


	//region 赵爱增加 取单位列表 实现前端选择单位 2020-8-28
	/**
	 * 根据父级单位ID查询单位列表
	 * @param pId 父级单位ID
	 * @return List<Map<String, Object>> 单位列表
	 */
	public List<Map<String, Object>> getDeptList(String pId);

	/**
	 * 根据组织名称查询组织列表
	 * @param deptName 组织名称
	 * @return List<Map<String, Object>> 组织列表
	 */
	List<Map<String, Object>> getDeptListByName(String deptName);

	/**
	 * 获取已选择组织机构
	 * @param ids 已选择组织机构ID
	 * @return List<Map<String, Object>> 组织列表
	 */
	List<Map<String, Object>> getSelectedDeptList(String ids);

	/**
	 * 获取指定机构下的树结构
	 *
	 * @return List<SysDeptTreeDto>
	 */
	List<SysDeptTreeDto2> getDeptTree(String pid);
	/**
	 * 根据名称查询id
	 * @param deptName 组织机构名称
	 * @return String 组织机构id
	 */
	String getDeptIdByName(String deptName);
	//endregion
	
	/*************** 2020-10-10 17:10:00 以下为新增的方法 孙文文  ADD  START ***************/
	/**
	 * 数据列表
	 * @param sysDeptDTO
	 * @return
	 */
	List<SysDeptEntity> getBreadCrumbsList(SysDeptDTO sysDeptDTO);

	String getfullpinyin(String hanzi);

	SysDeptDTO getCheckErrCode(SysDeptDTO dto);
	/*************** 2020-10-10 17:10:00 以上为新增的方法 孙文文  ADD  START ***************/


	/**
	 * 查询磅房列表
	 * @param params
	 * @return
	 */
	IPage<SysDeptEntity> page(Map<String, Object> params);
}